package com.kingyun.gpsinspection.purificationservice.facade.service.jsm.well;


import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Employee;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Well;

import java.util.List;

/**
 * @Author 卢曼成
 * @Description 井接口service
 * @CreateDateTime 2017/3/13 10:51
 **/
public interface JsmWellService {
    /**
     * 根据ID物理删除
     *
     * @param wellId
     * @return
     * @Author 卢曼成
     */
    int deleteByPrimaryKey(String wellId);

    /**
     * 根据ID逻辑删除
     *
     * @param wellId
     * @return
     * @Author 卢曼成
     */
    int updateStatus(String wellId);

    /**
     * 新增
     *
     * @param record
     * @return
     * @Author 卢曼成
     */
    int insert(Well record);

    /**
     * 非空新增
     *
     * @param record
     * @return
     * @Author 卢曼成
     */
    int insertSelective(Well record);

    /**
     * 根据ID获取信息
     *
     * @param wellId
     * @return
     * @Author 卢曼成
     */
    Well selectByPrimaryKey(String wellId);

    /**
     * 非空修改
     *
     * @param record
     * @return
     * @Author 卢曼成
     */
    int updateByPrimaryKeySelective(Well record);

    /**
     * 修改
     *
     * @param record
     * @return
     * @Author 卢曼成
     */
    int updateByPrimaryKey(Well record);


    /**
     * 条件查询集合
     *
     * @param record
     * @return List<Well>
     * @Author 卢曼成
     */
    List<Well> selectByPrimaryList(Well record);

    /**
     * 添加或修改
     *
     * @param record
     * @return int
     * @Author 卢曼成
     */
    int saveOrUpdate(Well record, Employee employee) throws Exception;

    /**
     * @param record
     * @return
     * @Author 卢曼成
     * @Description 根据条件查询树形
     */
    List<Well> selectByTree(Well record);

    /**
     * @param record
     * @return
     * @Author 卢曼成
     * @Description 根据条件查询当前下级总数
     */
    List<Well> selectByItem(Well record);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量添加
     * @Date 2017/2/8 17:17
     */
    int insertList(List<Well> list);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量修改
     * @Date 2017/2/8 17:17
     */
    int updateList(List<Well> list);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量逻辑删除
     * @Date 2017/2/8 17:18
     */
    int deleteList(List<Well> list);
}
